{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cf9a11e5",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3410558f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最近 2 年上涨月数/总月数：11/25 | 概率：44.00%\n",
      "最近 3 年上涨月数/总月数：17/37 | 概率：45.95%\n",
      "最近 5 年上涨月数/总月数：31/61 | 概率：50.82%\n",
      "最近 8 年上涨月数/总月数：49/97 | 概率：50.52%\n",
      "最近 10 年上涨月数/总月数：60/121 | 概率：49.59%\n",
      "最近 13 年上涨月数/总月数：80/157 | 概率：50.96%\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAACLDElEQVR4nOzdd3wUdf7H8ffsphEgtABBCL0KxAgWFAVExIYdT7EBHnqiPyviWQ4RC6Aiogg2VOTsFaXoqYjoKcqJggkBpIXeE1JI2ezO/P4IO9lNNmRRMim+nj7y0Hx2Zvb7/c7sZ2Y/fmdiWJZlCQAAAAAAAHCQq6obAAAAAAAAgL8eilIAAAAAAABwHEUpAAAAAAAAOI6iFAAAAAAAABxHUQoAAAAAAACOoygFAAAAAAAAx1GUAgAAAAAAgOMoSgEAAAAAAMBxFKUAAKgmfD6f5s6dq40bN4a9zrJly2RZ1p963w8//FCPPfaY/fvKlSv1n//8J+z1CwoKJElffPGFPv30U0lSbm6u/fp//vOfoN+PVEZGhg4cOKC8vDwVFBRU+JOfn68DBw4oPz/f3kZhYWFY6wb+FBUVBbXD6/XqwIEDYf/k5eWV6cvq1au1e/du+/eNGzce0f7227p1q4YPH67Nmzcf8bqVYdOmTZo7d668Xm+Fy27btk0vvfSSJMk0TeXl5cnn8wUt89hjj2nDhg1H3I7169frjDPOUGpqaoXL+o9bSXr66ae1YcMGWZZl77cdO3boxx9//NOfL0l66aWXdPzxxx/ROq+99pq+/fbbP/3eAABUZxSlAACoJnw+ny655JKwC0J79+7VgAEDNH78eDu2fPlyrVy5UqtXr9aaNWuCflatWqVffvlFmZmZQdspXYT66KOPNHbs2KBl9u3bp+eee65M8eDTTz/VqaeeqtzcXH388cd66623ZJqmevToocWLF8vj8eiCCy7QnDlzjnQ4bBdeeKEaNWqkunXrqk6dOhX+xMbGqlGjRnrzzTftbbRr1y6sdQN/br311qB2fPXVV2rUqFHYP9dff33IvgSOxV133aU777zT3g/33ntvmZ9du3aV2c7999+vefPmaf/+/UpPTw/5s2nTJq1du7bM/paKiyQREREV/txyyy1h7aMvv/xSl1xySZlCXijLly/XrbfeqqFDh+rXX39V3bp1FRERIcMwNHToUEnSww8/rE2bNkmS5s6dq2HDhgUVh5YuXWoXtgItXLhQK1asUOvWrStsx1VXXWUXY++//36tW7dOixYtUlJSknw+n/7zn/9owIABOnDgQDhDcFg+ny9kAfHdd9+VYRghC5gTJ07UwoUL//R7AwBQnUVUdQMAAECxqKgoGYah6OjosJZv2rSpnnrqKd18881KSkrS0KFD1a9fP1mWpZiYGLlcLu3fv19xcXGKjIxUUVGRCgoK9NZbb+myyy4Lel+Xq+T/U/mX/d///qdly5Zp0aJFWrhwoZo1a6a2bdtqyJAh9rLnn3++pk+frqeeekqRkZGKiorSBx98oNjYWPXv31/Lly+X1+sNer8j9dFHH8nn8yk6OjqonWvXrlXfvn319ttv66yzzgpax+PxqG7duvbv0dHRuv3223XHHXeE9Z6XXHKJGjRoEBTz75fA4siOHTv04IMPaurUqYqLi7PjI0aMCCrgmaapoqIiRUdHB+1f/9gXFhZq3bp1evzxxzVp0iRJ0u7duzVt2jRdf/31SkhIsNd577339MYbbyguLk4DBw4stw+WZcnj8eiFF17Q8OHDg16LjIxUq1atlJ6eXu76gwYNUr169cp9PZC/T+EcuxdddJEWLVqkkSNHqmHDhtq+fbtiYmJ0xx132DOtYmJi7G298847crvdMgzD3saiRYs0YcIEdevWTaeffrodf/PNN/WPf/wjaF+UZ+LEiTrppJN05ZVX2sfulClTNGrUKLndbv38888aOHCgGjVqFHL9zz//XL/88osiIyOD2nb22WerZ8+eQcvWqVMn6Nj1i4mJCfp3oMjIyLBzAQAANRVFKQAAqhGXyxXyy2t5Ro8ere3bt6tv376SpIMHDwa9bhiG3nzzzaBCkl9hYWHQe3k8Hrvgsm7dOt188806+eSTNXToUD399NNq06ZNmW3Mnj1b/fr1U6NGjfTdd9/p4MGDWr9+vfr3768PPvhAGzZsUPfu3RUdHW3POCkqKlJcXFzYX7ibNWsWMv7ggw+qb9++uvzyyyvchtvtVsOGDdWyZUtJxV/4S7MsS4WFhXZBpPQykZGR9nht27ZNXq9XO3fu1CuvvKKxY8cqOztbbrdbLVq0kFRccPJLS0uzCxW33367br/99qBtr1mzRg899JAk6d5775Ukpaamatq0aYqIKLlc+/HHH3X99ddrxIgReu211yrs9+HGIxzh7iP/9sI9dk877TStXr06qG/+oqxUfNwahqH9+/dr7ty5+uabb4LWf+CBB7R06VJdeeWVWrlypeLj47Vy5UotW7ZMy5Yt0+OPP17mPc8++2x9/vnnkqTt27fr888/15gxY/Tll1/K5/Np/vz5atOmjYqKipSamqqvvvpKI0aMsI9by7JUVFRkH4/79u3T2rVr7VleUvEtd927d1enTp0UHR0dVKySiouTBQUFio2NrXDcoqKiyhyDTz/9tLp06aLzzjsvrHEGAKC6oygFAEAN9+ijj/6h9caMGaMZM2bYv0dHR2vMmDFq2LChunbtqv/9739l1lm4cKE6duyozp07S5KWLFmi/fv3a/369fr999/Vpk0bLV++XD6fT8uXL9cPP/yg1NTUMrNNvvvuO5122ml/qN2S9PLLL+uLL77Qk08+eUTrvfnmmxo5cuRhlynvGUIRERF28eCaa67RkiVL7Ne6du0qqXjm2Pz58yUpqCDRvXt3FRYW6qSTTtI111yju+++W5J05ZVXKiIiQq+++mq5t2363/Orr76yZ8Odd955ZQoepSUkJGjnzp2H3WZFjqRAGq49e/aoWbNmdkEqOztbpmnK4/GUeSbVyy+/rKSkJPXp0ycobhiGXn/9dXXv3l033XSTPvjgA02aNEkDBw7UK6+8ErSsx+NRUlKSLr74YjuWmZmphQsXKiYmRl9++aUKCgq0fPlyNWnSRNu3b1d8fLx+//133X///br//vvt9Tp06KD169dLKj4GrrnmGvu17du365VXXtGWLVtUp06dkH33F6EyMzPVsGHDsMds//79uu222/TWW2/p3HPP1bnnnlvh/gcAoCagKAUAQDXz7bffBn059/l8Kigo0HHHHacBAwbYy+Tl5SkiIkJRUVHq16/fEb/PI488ogcffFDPPvusvvnmG3344YeKjo7Wc889p4MHD8rn8wXNqCkqKtIjjzyi2NhYLVq0SJI0Z84cLV++XIMHD1b37t3VvXt31atXT08++aRyc3P15JNP6quvvtKZZ56pnTt36phjjtGWLVt0zDHH/OHx+fXXX3XHHXfYRY0dO3bouuuu06xZs9S2bdvDrjtkyBD99ttvQbNb/PwzpcpjGIY9HnPnzpVlWdq1a5eOPfZY7dmzRzExMWWeuRW4rn/m1IwZMzR37lxJ0u+//67BgwcHzRLyF+tKP2eoZcuWuuqqqzR16lS99957OvPMM/XBBx9owYIFmjdvnp577jl7TObPn2/fBliezZs3V1jYONLC4axZs4J+93g8Kigo0HXXXaf4+HgVFBSoV69e6tOnj2bMmKHmzZurbdu29nOvAm/zzM/P1zPPPKOpU6eGfK/4+Hi98soratGihZYvX673339f3333ndq2bavXX39dJ510krp166Yvv/xShYWFQbMFe/TooS+++ELjx49Xamqq9uzZo8GDB8s0TY0bN06PPPKIEhMTtWXLFknSpEmTtHjxYs2bN8/ext69e/Xkk09q0qRJcrvd9rOshg0bpsGDBysuLs4+Xt566y2NGzdOv//+uwoKCsrcXrhmzRpJxZ8xj8ejLl26SCp+GPszzzyjRx55RAkJCfr444+DimsAANR0FKUAAKhm3nnnHX300Uf2716vVx6PR7fffrtdlHrjjTf0+++/a+/evcrIyLBnxGzdulV33nmnnn322TKFH3+BwP+F2D97KSYmRhEREWrevLkk6fjjj9fmzZvVqFEj+zYjScrKypLX67VvgfJ6vXr++ef1r3/9S1OnTlVKSor27Nkjt9uts88+W2effbYsy1JWVpYkaefOnXK5XEpISAj79rHSNmzYoAsuuEAjRoywC2NxcXEqKChQ37599eWXX+rYY48td/34+HjFx8f/off2+XyKiIjQ7t27tW3bNkVGRmrPnj2SpC1btigmJkZer1cZGRmH3c4tt9xiz5QaMWKEXYD0z9D673//K6n49r3AZxN169ZNM2fOlFS8L+Lj49WwYUN16tRJX3zxhW644Qa999579i1fjRs3Pmw72rRpU+EzpY6Uv19+Ho9HHo9HZ599tuLj4xUTE6Mnn3xSN910k6688kotXrxYpmlqwYIFZW5Ji46O1jPPPKNLL7203PfzF5rOO+88XXHFFTr11FMlFd8ieeedd2r8+PGaP3++evXqpVatWtnr7dixQ7feeqtWrlypr776Sr169VJiYqLGjRun2NhYzZkzxz5upeJjt3nz5kG3M2ZmZur1119Xbm6uZs6cqS+++EKnnXaa4uLitHfvXpmmqSZNmkiSYmNjZRiG/Xtp/plg/vH6/vvvJRU/9yo5OVkzZszQ5ZdfXikz1wAAqEoUpQAAqGZmzpypESNGHHYZ/18emz17dtBf3yssLNSHH36oKVOm2LEL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9eqKK64I+/k1fg8++GC5DwVfsmSJDMMI+hk3blzIZcePH68mTZronXfe0bfffqvp06frvvvus1/3P3j92GOP1UknnXREbZSKb2cr/RDsw+nZs+dhi1/+mUMJCQlq1KiRGjVqpAkTJig7O7vcdUzT1LfffqtevXpJKnkoebgmTpyogwcP6uWXX9avv/6qAwcOaPv27Zo+fbry8/O1atUqLV26VElJSWFtb8eOHfaD6Xv27KmlS5fqtNNOs29hy83NVWxsrAoLC8s8qyo/P1+LFy/W6aeffkR9OJo+/fRTnXrqqWWevVV6ttqgQYO0atUqrVixIii+efNmPfTQQ5o4caLq169vx99//319/fXXevTRR3Xvvfdq5MiR2rhxY5n3NwxDO3fu1AsvvCCPx6P33ntP06ZNk2VZGjZsmCSpXbt2Ov/88/XUU09p9OjRIfuxfft23XLLLZo0aZLeeOMNrVixwp4ZdeONN+qWW24Je0yKioo0c+ZMdezYUd9++23IZfLz88N6bhcAADUFRSkAAGowy7K0efNmLV++3P7LY0dD//79y8ycKf2Qab9XX31VU6ZM0a+//qr+/fsrMzNTn332mf1MH38BJzIy8qjOAPHPeDpSp556qvbu3Vvmx/9XBUP57rvvtGvXLvt2try8PC1atCioaLdkyRLl5+eXu43ff/9dI0eO1IIFCyRJ69at0+jRo/Xss89q586d+s9//mP/NbmKpKen65xzzrHfu02bNnr88cflcrlkGIZefvllPfzww4qJiVFaWlrQuq+++qoOHjxoF1/KU9GD1/+MuXPn6vLLL69wufXr1+ukk04KugWuqKhIw4YNU5cuXYKe3bVgwQINHz5cM2bMUGJiou644w517txZp59+un7++ecy227RooX+97//6cwzz9Tjjz+uMWPGSJLmzJkjr9cr0zTtolmoWYiZmZk6//zzdfrpp+vmm29Wy5Yt9dBDD+nBBx8M+zj3b/ell15S586ddc899+jaa68tt3i7ZMkStWzZstzZYwAA1DQ8UwoAAIcVFRXpt99+U3R0dNADyf127typNWvWlIl7vV5FREQE3RK0cuVKScW3h8XExOj333+XJG3YsMH+Yrxt2zatWbNGlmXZf+msY8eOSk9P16pVq/TDDz+oTp06Qe/lnylVWqi/WteoUSN17txZTz/9tPr37697771XL774ojZu3Kg5c+bo0Ucf1XPPPadJkybpnHPO0ccff6ymTZsewYiFVlhY+Icexh0ZGVnmwdelBRa8TNPUvffeq/bt29t/1e/hhx/WAw88ELSOx+PRunXrtGzZMq1bt04nnHCC/VpmZqYuvfRSXX/99fq///s/SVJycrKeffZZPfnkk/ruu+/UqFEjXXbZZfY6/r6F2g/p6enlztbyeDw65ZRTdP/99+vcc88NGuutW7fqwQcf1LXXXhvydrTMzEy9/vrrKiws1PLly+0Hd/vt3LlTu3fvVlRUVNAsp507d0pSyOPWsiwVFRWpRYsWatq0qX744Qelp6eXKcCVHvOHHnpIP//8s5599lldf/31uvnmm9W7d2+tWLFCK1eu1GeffSbDMJSbm6sJEybo6aef1kMPPaRRo0ZJKt7Pn3zyic4991z17dtX//znP3XPPfcE/SXCLl26aNmyZUpPT9fjjz+uhg0bau7cuTrzzDP197//Xbt379aTTz6psWPHyuv16t5775VhGNq+fbsGDRqkhg0b6s0337S3d+uttyo5OTnoPUzT1KZNm+yH6gdavHixpOLZhLfccovGjh1r7686depoyZIluuSSS+R2u2WapmbOnCnLssKeUQcAQLVnAQAAR+3cudOKiIiw6tevbzVo0CDsn5iYGOuUU06xt1NQUGDFx8dbI0eOtNavX29FRkZa9erVK3f9uLg4q06dOtawYcMsy7Ks1NRUq27dulZSUpK1cOFCe7sPPfSQ1bdvXyszMzPo54EHHrBOOukkeznTNK0ZM2ZY/fv3txo3bmw98cQTltfrtSzLshYtWmT17NnTatmypbV48WL7/Vq1amXFx8dbaWlpf3ocmzVrZo0fPz6sZVu0aBHWsjNnzrTOP/98y+12Ww8//LBlWZaVn59vjRw50po+ffph1zVN0+revbsVHR1t9ejRw/rf//5nvzZ//nzrnHPOsTweT5n1pk+fbkmyXnzxRTv2+eefW/Hx8VZsbKyVl5cXVh8ty7LuuOMOy+12W82aNbN27dpV5vU777zTatOmjbV3795yt9GtWzerXr161umnn25t2bIl6LXJkydbMTExVlxcXNjHbb169azIyEjrhRdesCzLsi677DJr8ODB9jbfeust6+qrr7YkWUuWLLHWrVtnSbKaNGliff/995ZlWdYZZ5xhtW7d2tq5c6dl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SZMmTdKoUaP00UcfVWqjAQAAAAAAULOFNVMqOTlZzz33nEzTVExMjP7xj3+oRYsWeuqpp1S3bl09++yzOu6445Sfn69p06YpKiqqstsNAAAAAACAGiysmVL//e9/deKJJ6pevXpas2aN6tevr06dOsmyLDVr1kzr1q1TUVGRMjIy5PV6K7vNAAAAAAAAqOHCKkqtXLlSK1euVHp6ur799ltt2LBBq1evVt++fVVQUKCCggLl5OTozDPP1H333VfZbQYAAAAAAEANF1ZR6vnnn1fdunU1ePBgnXTSSdq6datGjx6tJ554QllZWUpOTpbX69XkyZO1aNEibdu2rbLbDQAAAAAAgBosrKLU448/Lo/Ho0aNGqlbt26aNWuWLr/8ch133HFq3Lixli9frscee0wul0vXXHON5syZU9ntBgAAAAAAQA0W1oPOH3jgAblcLm3btk3dunXTCSecoLvvvltut1u33367GjVqpDPPPFOSdPXVV6thw4aV2WYAAAAAAADUcGEVpVyu4glVrVq1UqtWrSRJw4cPlySNHTs2aNnExMSj2T4AAAAAAADUQmHdvue3Y8eOw76emZmps846S7t27fpTjQIAAAAAAEDtdkRFqR49euj444/Xgw8+qPT09DKv33fffdq6dasaNWp0tNoHAAAAAACAWuiIilKWZemBBx5Qenq6li9fHvTaa6+9pjfffFPvvPOOoqOjj2ojAQAAAAAAULuE9UwpP8MwNHToUA0dOtSOWZalqVOn6vHHH9eXX36p5OTko91GAAAAAAAA1DJHVJTymzx5sjIzM5WVlaUvvvhCffv21fLly3nIOQAAAAAAAMJS4e17hYWFGj9+vDIyMuyYZVnKy8vT7t27lZOTo/379yszM7NSGwoAAAAAAIDao8KZUps3b9YPP/ygZ555Rnl5eVq+fLnuu+8++3Wfz6fXXntNZ599tmbMmKFLL720UhsMAAAAAACAmq/CmVKdO3fWl19+qXXr1umRRx7RkCFDdOWVV2rr1q2SJLfbrVGjRmn+/Pm68cYb9d///rfSGw0AAAAAAICaLey/vte0aVP985//1MaNG5WYmKiUlBT5fD779d69e2vq1KkaNmyYcnNzK6WxAAAAAAAAqB3CLkpJ0s8//6whQ4boX//6l84991yddNJJuuWWW+znSV133XXq1auXdu3aVSmNBQAA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",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import akshare as ak\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import datetime\n",
    "import numpy as np\n",
    "\n",
    "# ========== 参数设置 ==========\n",
    "symbol = \"上证指数\"\n",
    "year_spans = [2, 3, 5, 8, 10, 13]\n",
    "\n",
    "# ========== 获取数据 ==========\n",
    "today = datetime.datetime.today()\n",
    "full_start_date = (today - pd.DateOffset(years=max(year_spans))).strftime('%Y%m%d')\n",
    "end_date = today.strftime('%Y%m%d')\n",
    "\n",
    "# 获取上证指数历史数据（英文字段）\n",
    "df = ak.stock_zh_index_daily(symbol=\"sh000001\").copy()\n",
    "df[\"date\"] = pd.to_datetime(df[\"date\"])\n",
    "df = df.sort_values(\"date\")\n",
    "\n",
    "# ========== 初始化图表数据容器 ==========\n",
    "bar_data = {}  # key: N_YEARS, value: 月份 -> 上涨次数\n",
    "\n",
    "# ========== 各周期上涨统计 ==========\n",
    "for N_YEARS in year_spans:\n",
    "    start_cut = today - pd.DateOffset(years=N_YEARS)\n",
    "    df_cut = df[df[\"date\"] >= start_cut].copy()\n",
    "\n",
    "    # 每月开盘与收盘\n",
    "    monthly_df = df_cut.groupby(df_cut[\"date\"].dt.to_period(\"M\")).agg({\n",
    "        \"open\": \"first\",\n",
    "        \"close\": \"last\"\n",
    "    }).reset_index()\n",
    "\n",
    "    monthly_df[\"month\"] = monthly_df[\"date\"].dt.month\n",
    "    monthly_df[\"up\"] = monthly_df[\"close\"] > monthly_df[\"open\"]\n",
    "\n",
    "    up_counts = monthly_df.groupby(\"month\")[\"up\"].sum()\n",
    "    total_counts = monthly_df.groupby(\"month\")[\"up\"].count()\n",
    "\n",
    "    total_up_count = up_counts.sum()\n",
    "    total_months = len(monthly_df)\n",
    "    overall_up_probability = total_up_count / total_months if total_months else 0\n",
    "\n",
    "    print(f\"最近 {N_YEARS} 年上涨月数/总月数：{total_up_count}/{total_months} | 概率：{overall_up_probability:.2%}\")\n",
    "\n",
    "    # 保存当前周期上涨次数\n",
    "    bar_data[N_YEARS] = up_counts\n",
    "\n",
    "# ========== 合并图表：分组柱状图 ==========\n",
    "plt.figure(figsize=(12, 6))\n",
    "\n",
    "bar_width = 0.12\n",
    "months = np.arange(1, 13)\n",
    "offsets = np.linspace(-bar_width * len(year_spans) / 2, bar_width * len(year_spans) / 2, len(year_spans))\n",
    "\n",
    "for i, N_YEARS in enumerate(year_spans):\n",
    "    counts = bar_data.get(N_YEARS, pd.Series(0, index=range(1, 13)))\n",
    "    counts = counts.reindex(range(1, 13), fill_value=0)\n",
    "    plt.bar(months + offsets[i], counts.values, width=bar_width, label=f\"{N_YEARS}年\")\n",
    "\n",
    "plt.xticks(months, [f\"{m}月\" for m in months], rotation=-90)\n",
    "plt.xlabel(\"月份\")\n",
    "plt.ylabel(\"上涨次数\")\n",
    "plt.title(f\"{symbol} 不同周期每月上涨次数对比\")\n",
    "plt.legend(title=\"周期\")\n",
    "plt.grid(axis='y', linestyle='--', alpha=0.6)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
